home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
u_man
/
cat1
/
rdist.z
/
rdist
Wrap
Text File
|
1998-10-20
|
31KB
|
661 lines
RRRRDDDDIIIISSSSTTTT((((1111)))) RRRRDDDDIIIISSSSTTTT((((1111))))
NNNNAAAAMMMMEEEE
rdist - remote file distribution client program
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
rrrrddddiiiisssstttt [ ----DDDDFFFFnnnn ] [ ----AAAA _n_u_m ] [ ----aaaa _n_u_m ] [ ----dddd _v_a_r=_v_a_l_u_e ] [ ----llll <_l_o_c_a_l
_l_o_g_o_p_t_s> ] [ ----LLLL <_r_e_m_o_t_e _l_o_g_o_p_t_s> ] [ ----ffff _d_i_s_t_f_i_l_e ] [ ----MMMM _m_a_x_p_r_o_c ] [ ----mmmm
_h_o_s_t ] [ ----oooo_d_i_s_t_o_p_t_s ] [ ----tttt _t_i_m_e_o_u_t ] [ ----pppp <_r_d_i_s_t_d-_p_a_t_h> ] [ ----PPPP <_r_s_h-_p_a_t_h>
] [ _n_a_m_e ... ]
rrrrddddiiiisssstttt [ ----DDDDFFFFnnnn ] ----cccc _n_a_m_e ... [_l_o_g_i_n@]_h_o_s_t[:_d_e_s_t]
rrrrddddiiiisssstttt ----SSSSeeeerrrrvvvveeeerrrr
rrrrddddiiiisssstttt ----VVVV
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
_R_d_i_s_t is a program to maintain identical copies of files over multiple
hosts. It preserves the owner, group, mode, and mtime of files if
possible and can update programs that are executing. _R_d_i_s_t reads
commands from _d_i_s_t_f_i_l_e to direct the updating of files and/or
directories. If _d_i_s_t_f_i_l_e is `-', the standard input is used. If no ----ffff
option is present, the program looks first for `distfile', then
`Distfile' to use as the input. If no names are specified on the command
line, _r_d_i_s_t will update all of the files and directories listed in
_d_i_s_t_f_i_l_e. Otherwise, the argument is taken to be the name of a file to
be updated or the label of a command to execute. If label and file names
conflict, it is assumed to be a label. These may be used together to
update specific files using specific commands.
The ----cccc option forces _r_d_i_s_t to interpret the remaining arguments as a
small _d_i_s_t_f_i_l_e. The equivalent distfile is as follows.
( _n_a_m_e ... ) -> [_l_o_g_i_n@]_h_o_s_t
install [_d_e_s_t] ;
The ----SSSSeeeerrrrvvvveeeerrrr option is recognized to provide partial backward compatible
support for older versions of _r_d_i_s_t which used this option to put _r_d_i_s_t
into server mode. If _r_d_i_s_t is started with the ----SSSSeeeerrrrvvvveeeerrrr command line
option, it will attempt to exec (run) the old version of _r_d_i_s_t. This will
only work if /usr/bsd/ordist is available at run time.
_R_d_i_s_t can use either the _r_c_m_d(_3) function call or the _r_s_h(_1_c), remote
shell, command to access each target host. The method used is selected
at compile-time. If the _r_s_h(_1_c) method is used, then _r_d_i_s_t runs the
command
rrrrsssshhhh _H_O_S_T ----llll _U_S_E_R _R_D_I_S_T_D
where _H_O_S_T is the name of the target host, _U_S_E_R is the name of the user
to make the connection as and, _R_D_I_S_T_D is the rdist server command on the
target host as shown below. If the _r_c_m_d(_3) method is used, then _r_d_i_s_t
PPPPaaaaggggeeee 1111
RRRRDDDDIIIISSSSTTTT((((1111)))) RRRRDDDDIIIISSSSTTTT((((1111))))
makes the connection to the target host itself and runs the _r_d_i_s_t_d server
program as shown below. The default, and preferred method, is to use
_r_s_h(_1_c) to make the connection to target hosts. This allows _r_d_i_s_t to be
run without being setuid to ``root''.
On each target host _R_d_i_s_t will attempt to run the command
_r_d_i_s_t_d -_S
or
<_r_d_i_s_t_d _p_a_t_h> -_S
if the -_p option was specified. If no ----pppp option is included, or the
<_r_d_i_s_t_d _p_a_t_h> is a simple filename, _r_d_i_s_t_d or <_r_d_i_s_t_d _p_a_t_h> must be
somewhere in the $$$$PPPPAAAATTTTHHHH of the user running rrrrddddiiiisssstttt on the remote (target)
host.
OOOOPPPPTTTTIIIIOOOONNNNSSSS
----AAAA _n_u_m
Set the minimum number of free files (inodes) on a filesystem that
must exist for _r_d_i_s_t to update or install a file.
----aaaa _n_u_m
Set the minimum amount of free space (in bytes) on a filesystem that
must exist for _r_d_i_s_t to update or install a file.
----DDDD Enable copious debugging messages.
----dddd _v_a_r=_v_a_l_u_e
Define _v_a_r to have _v_a_l_u_e. This option is used to define or override
variable definitions in the _d_i_s_t_f_i_l_e. _V_a_l_u_e can be the empty
string, one name, or a list of names surrounded by parentheses and
separated by tabs and/or spaces.
----FFFF Do not fork any child _r_d_i_s_t processes. All clients are updated
sequentially.
----ffff _d_i_s_t_f_i_l_e
Set the name of the distfile to use to be _d_i_s_t_f_i_l_e . If _d_i_s_t_f_i_l_e is
specified as ``-'' (dash) then read from standard input (stdin).
----llll _l_o_g_o_p_t_s
Set local logging options. See the section MMMMEEEESSSSSSSSAAAAGGGGEEEE LLLLOOOOGGGGGGGGIIIINNNNGGGG for
details on the syntax for _l_o_g_o_p_t_s.
----LLLL _l_o_g_o_p_t_s
Set remote logging options. _l_o_g_o_p_t_s is the same as for local
logging except the values are passed to the remote server (_r_d_i_s_t_d).
See the section MMMMEEEESSSSSSSSAAAAGGGGEEEE LLLLOOOOGGGGGGGGIIIINNNNGGGG for details on the syntax for
_l_o_g_o_p_t_s.
PPPPaaaaggggeeee 2222
RRRRDDDDIIIISSSSTTTT((((1111)))) RRRRDDDDIIIISSSSTTTT((((1111))))
----MMMM _n_u_m
Set the maximum number of simultaneously running child _r_d_i_s_t
processes to _n_u_m. The default is 4.
----mmmm _m_a_c_h_i_n_e
Limit which machines are to be updated. Multiple ----mmmm arguments can be
given to limit updates to a subset of the hosts listed in the
_d_i_s_t_f_i_l_e.
----nnnn Print the commands without executing them. This option is useful for
debugging _d_i_s_t_f_i_l_e.
----oooo_d_i_s_t_o_p_t_s
Specify the dist options to enable. _d_i_s_t_o_p_t_s is a comma separated
list of options which are listed below. The valid values for
_d_i_s_t_o_p_t_s are:
vvvveeeerrrriiiiffffyyyy
Verify that the files are up to date on all the hosts. Any
files that are out of date will be displayed but no files will
be changed nor any mail sent.
wwwwhhhhoooolllleeee
Whole mode. The whole file name is appended to the destination
directory name. Normally, only the last component of a name is
used when renaming files. This will preserve the directory
structure of the files being copied instead of flattening the
directory structure. For example, rdisting a list of files such
as /_p_a_t_h/_d_i_r_1/_f_1 and /_p_a_t_h/_d_i_r_2/_f_2 to /_t_m_p/_d_i_r would create
files /_t_m_p/_d_i_r/_p_a_t_h/_d_i_r_1/_f_1 and /_t_m_p/_d_i_r/_p_a_t_h/_d_i_r_2/_f_2 instead
of /_t_m_p/_d_i_r/_d_i_r_1/_f_1 and /_t_m_p/_d_i_r/_d_i_r_2/_f_2.
nnnnooooeeeexxxxeeeecccc
Automatically exclude executable files that are in _a._o_u_t(_5)
format from being checked or updated.
yyyyoooouuuunnnnggggeeeerrrr
Younger mode. Files are normally updated if their _m_t_i_m_e and
_s_i_z_e (see _s_t_a_t(2)) disagree. This option causes _r_d_i_s_t not to
update files that are younger than the master copy. This can
be used to prevent newer copies on other hosts from being
replaced. A warning message is printed for files which are
newer than the master copy.
ccccoooommmmppppaaaarrrreeee
Binary comparison. Perform a binary comparison and update files
if they differ rather than comparing dates and sizes.
ffffoooolllllllloooowwww
Follow symbolic links. Copy the file that the link points to
rather than the link itself.
PPPPaaaaggggeeee 3333
RRRRDDDDIIIISSSSTTTT((((1111)))) RRRRDDDDIIIISSSSTTTT((((1111))))
iiiiggggnnnnllllnnnnkkkkssss
Ignore unresolved links. _R_d_i_s_t will normally try to maintain
the link structure of files being transferred and warn the user
if all the links cannot be found.
cccchhhhkkkknnnnffffssss
Do not check or update files on target host that reside on NFS
filesystems.
cccchhhhkkkkrrrreeeeaaaaddddoooonnnnllllyyyy
Enable check on target host to see if a file resides on a
read-only filesystem. If a file does, then no checking or
updating of the file is attempted.
cccchhhhkkkkssssyyyymmmm
If the target on the remote host is a symbolic link, but is not
on the master host, the remote target will be left a symbolic
link. This behavior is generally considered a bug in the
original version of _r_d_i_s_t, but is present to allow
compatibility with older versions.
qqqquuuuiiiieeeetttt
Quiet mode. Files that are being modified are normally printed
on standard output. This option suppresses this.
rrrreeeemmmmoooovvvveeee
Remove extraneous files. If a directory is being updated, any
files that exist on the remote host that do not exist in the
master directory are removed. This is useful for maintaining
truly identical copies of directories.
nnnnoooocccchhhhkkkkoooowwwwnnnneeeerrrr
Do not check user ownership of files that already exist. The
file ownership is only set when the file is updated.
nnnnoooocccchhhhkkkkggggrrrroooouuuupppp
Do not check group ownership of files that already exist. The
file ownership is only set when the file is updated.
nnnnoooocccchhhhkkkkmmmmooooddddeeee
Do not check file and directory permission modes. The
permission mode is only set when the file is updated.
nnnnooooddddeeeesssscccceeeennnndddd
Do not descend into a directory. Normally _r_d_i_s_t will
recursively check directories. If this option is enabled, then
any files listed in the file list in the distfile that are
directories are not recursively scanned. Only the existence,
ownership, and mode of the directory are checked.
PPPPaaaaggggeeee 4444
RRRRDDDDIIIISSSSTTTT((((1111)))) RRRRDDDDIIIISSSSTTTT((((1111))))
nnnnuuuummmmcccchhhhkkkkggggrrrroooouuuupppp
Use the numeric group id (gid) to check group ownership instead
of the group name.
nnnnuuuummmmcccchhhhkkkkoooowwwwnnnneeeerrrr
Use the numeric user id (uid) to check user ownership instead
of the user name.
ssssaaaavvvveeeettttaaaarrrrggggeeeettttssss
Save files that are updated instead of removing them. Any
target file that is updates is first rename from ffffiiiilllleeee to
ffffiiiilllleeee....OOOOLLLLDDDD....
----pppp <_r_d_i_s_t_d-_p_a_t_h>
Set the path where the rdistd server is searched for on the target
host.
----PPPP <_r_s_h-_p_a_t_h>
Set the path to the _r_s_h(_1_c) command. The _r_s_h-_p_a_t_h may be a colon
seperated list of possible pathnames. In this case, the first
component of the path to exist is used. i.e.
////uuuussssrrrr////uuuuccccbbbb////rrrrsssshhhh::::////uuuussssrrrr////bbbbiiiinnnn////rrrreeeemmmmsssshhhh ,,,, ////uuuussssrrrr////bbbbssssdddd////rrrrsssshhhh....
----tttt _t_i_m_e_o_u_t
Set the timeout period (in seconds) for waiting for responses from
the remote _r_d_i_s_t server. The default is 900 seconds.
----VVVV Print version information and exit.
MMMMEEEESSSSSSSSAAAAGGGGEEEE LLLLOOOOGGGGGGGGIIIINNNNGGGG
_R_d_i_s_t uses a collection of predefined message ffffaaaacccciiiilllliiiittttiiiieeeessss that each
contain a list of message ttttyyyyppppeeeessss specifying which types of messages to
send to that _f_a_c_i_l_i_t_y. The local client (_r_d_i_s_t) and the remote server
(_r_d_i_s_t_d) each maintain their own copy of what types of messages to log to
what facilities.
The ----llll _l_o_g_o_p_t_s option to _r_d_i_s_t tells _r_d_i_s_t what logging options to use
locally. The ----LLLL _l_o_g_o_p_t_s option to _r_d_i_s_t tells _r_d_i_s_t what logging options
to pass to the remote _r_d_i_s_t_d server.
The form of _l_o_g_o_p_t_s should be of form
_f_a_c_i_l_i_t_y====_t_y_p_e_s::::_f_a_c_i_l_i_t_y====_t_y_p_e_s...
The valid facility names are:
ssssttttddddoooouuuutttt
Messages to standard output.
ffffiiiilllleeee Log to a file. To specify the file name, use the format
``ffffiiiilllleeee====_f_i_l_e_n_a_m_e====_t_y_p_e_s''. e.g.
````````ffffiiiilllleeee====////ttttmmmmpppp////rrrrddddiiiisssstttt....lllloooogggg====aaaallllllll,,,,ddddeeeebbbbuuuugggg''''''''....
PPPPaaaaggggeeee 5555
RRRRDDDDIIIISSSSTTTT((((1111)))) RRRRDDDDIIIISSSSTTTT((((1111))))
ssssyyyysssslllloooogggg
Use the _s_y_s_l_o_g_d(_8) facility.
nnnnoooottttiiiiffffyyyy
Use the internal _r_d_i_s_t nnnnoooottttiiiiffffyyyy facility. This facility is used
in conjunction with the nnnnoooottttiiiiffffyyyy keyword in a _d_i_s_t_f_i_l_e to specify
what messages are mailed to the nnnnoooottttiiiiffffyyyy address.
_t_y_p_e_s should be a comma separated list of message types. Each message
type specified enables that message level. This is unlike the _s_y_s_l_o_g(_3)
system facility which uses an ascending order scheme. The following are
the valid _t_y_p_e_s:
cccchhhhaaaannnnggggeeee
Things that change. This includes files that are installed or
updated in some way.
iiiinnnnffffoooo General information.
nnnnoooottttiiiicccceeee
General info about things that change. This includes things
like making directories which are needed in order to install a
specific target, but which are not explicitly specified in the
_d_i_s_t_f_i_l_e.
nnnneeeerrrrrrrroooorrrr
Normal errors that are not fatal.
ffffeeeerrrrrrrroooorrrr
Fatal errors.
wwwwaaaarrrrnnnniiiinnnngggg
Warnings about errors which are not as serious as nnnneeeerrrrrrrroooorrrr type
messages.
vvvveeeerrrrbbbboooosssseeee
Detailed status messages.
ddddeeeebbbbuuuugggg
Debugging information.
aaaallllllll All but debug messages.
Here is a sample command line option:
-l stdout=all:syslog=change,notice:file=/tmp/rdist.log=all
This entry will set local message logging to have all but debug messages
sent to standard output, change and notice messages will be sent to
_s_y_s_l_o_g(_3), and all messages will be written to the file ////ttttmmmmpppp////rrrrddddiiiisssstttt....lllloooogggg....
PPPPaaaaggggeeee 6666
RRRRDDDDIIIISSSSTTTT((((1111)))) RRRRDDDDIIIISSSSTTTT((((1111))))
DDDDIIIISSSSTTTTFFFFIIIILLLLEEEESSSS
The _d_i_s_t_f_i_l_e contains a sequence of entries that specify the files to be
copied, the destination hosts, and what operations to perform to do the
updating. Each entry has one of the following formats.
<variable name> `=' <name list>
[ label: ] <source list> `->' <destination list> <command list>
[ label: ] <source list> `::' <time_stamp file> <command list>
The first format is used for defining variables. The second format is
used for distributing files to other hosts. The third format is used for
making lists of files that have been changed since some given date. The
_s_o_u_r_c_e _l_i_s_t specifies a list of files and/or directories on the local
host which are to be used as the master copy for distribution. The
_d_e_s_t_i_n_a_t_i_o_n _l_i_s_t is the list of hosts to which these files are to be
copied. Each file in the source list is added to a list of changes if
the file is out of date on the host which is being updated (second
format) or the file is newer than the time stamp file (third format).
Labels are optional. They are used to identify a command for partial
updates.
Newlines, tabs, and blanks are only used as separators and are otherwise
ignored. Comments begin with `#' and end with a newline.
Variables to be expanded begin with `$' followed by one character or a
name enclosed in curly braces (see the examples at the end).
The source and destination lists have the following format:
<name>
or
`(' <zero or more names separated by white-space> `)'
These simple lists can be modified by using one level of set addition,
subtraction, or intersection like this:
list '-' list
or
list '+' list
or
list '&' list
If additional modifications are needed (e.g., ``all servers and client
machines except for the OSF/1 machines'') then the list will have to be
explicitly constructed in steps using "temporary" variables.
The shell meta-characters `[', `]', `{', `}', `*', and `?' are
recognized and expanded (on the local host only) in the same way as
_c_s_h(1). They can be escaped with a backslash. The `~' character is also
expanded in the same way as _c_s_h but is expanded separately on the local
and destination hosts. When the ----oooo_w_h_o_l_e option is used with a file name
PPPPaaaaggggeeee 7777
RRRRDDDDIIIISSSSTTTT((((1111)))) RRRRDDDDIIIISSSSTTTT((((1111))))
that begins with `~', everything except the home directory is appended to
the destination name. File names which do not begin with `/' or `~' use
the destination user's home directory as the root directory for the rest
of the file name.
The command list consists of zero or more commands of the following
format.
`install' <options> opt_dest_name `;'
`notify' <name list> `;'
`except' <name list> `;'
`except_pat' <pattern list>`;'
`special' <name list> string `;'
`cmdspecial' <name list> string `;'
The _i_n_s_t_a_l_l command is used to copy out of date files and/or directories.
Each source file is copied to each host in the destination list.
Directories are recursively copied in the same way. _O_p_t__d_e_s_t__n_a_m_e is an
optional parameter to rename files. If no _i_n_s_t_a_l_l command appears in the
command list or the destination name is not specified, the source file
name is used. Directories in the path name will be created if they do
not exist on the remote host. The ----oooo_d_i_s_t_o_p_t_s option as specified above
under OOOOPPPPTTTTIIIIOOOONNNNSSSS,,,, has the same semantics as on the command line except they
only apply to the files in the source list. The login name used on the
destination host is the same as the local host unless the destination
name is of the format ``login@host".
The _n_o_t_i_f_y command is used to mail the list of files updated (and any
errors that may have occurred) to the listed names. If no `@' appears in
the name, the destination host is appended to the name (e.g., name1@host,
name2@host, ...).
The _e_x_c_e_p_t command is used to update all of the files in the source list
eeeexxxxcccceeeepppptttt for the files listed in _n_a_m_e _l_i_s_t. This is usually used to copy
everything in a directory except certain files.
The _e_x_c_e_p_t__p_a_t command is like the _e_x_c_e_p_t command except that _p_a_t_t_e_r_n
_l_i_s_t is a list of regular expressions (see _e_d(1) for details). If one of
the patterns matches some string within a file name, that file will be
ignored. Note that since `\' is a quote character, it must be doubled to
become part of the regular expression. Variables are expanded in _p_a_t_t_e_r_n
_l_i_s_t but not shell file pattern matching characters. To include a `$',
it must be escaped with `\'.
The _s_p_e_c_i_a_l command is used to specify _s_h(1) commands that are to be
executed on the remote host after the file in _n_a_m_e _l_i_s_t is updated or
installed. If the _n_a_m_e _l_i_s_t is omitted then the shell commands will be
executed for every file updated or installed. _S_t_r_i_n_g starts and ends with
`"' and can cross multiple lines in _d_i_s_t_f_i_l_e. Multiple commands to the
shell should be separated by `;'. Commands are executed in the user's
home directory on the host being updated. The _s_p_e_c_i_a_l command can be
PPPPaaaaggggeeee 8888
RRRRDDDDIIIISSSSTTTT((((1111)))) RRRRDDDDIIIISSSSTTTT((((1111))))
used to rebuild private databases, etc. after a program has been
updated. The following environment variables are set for each _s_p_e_c_i_a_l
command:
FFFFIIIILLLLEEEE The full pathname of the local file that was just updated.
RRRREEEEMMMMFFFFIIIILLLLEEEE
The full pathname of the remote file that was just updated.
BBBBAAAASSSSEEEEFFFFIIIILLLLEEEE
The basename of the remote file that was just updated.
The _c_m_d_s_p_e_c_i_a_l command is similar to the _s_p_e_c_i_a_l command, except it is
executed only when the entire command is completed instead of after each
file is updated. The list of files is placed in the environment variable
$$$$FFFFIIIILLLLEEEESSSS.... Each file name in $$$$FFFFIIIILLLLEEEESSSS is separated by a `:' (semi-colon).
If a hostname ends in a ``+'' (plus sign), then the plus is stripped off
and NFS checks are disabled. This is equivalent to disabling the
----oooo_c_h_k_n_f_s option just for this one host.
The following is a small example.
HOSTS = ( matisse root@arpa)
FILES = ( /bin /lib /usr/bin /usr/games
/usr/include/{*.h,{stand,sys,vax*,pascal,machine}/*.h}
/usr/lib /usr/man/man? /usr/ucb /usr/local/rdist )
EXLIB = ( Mail.rc aliases aliases.dir aliases.pag crontab dshrc
sendmail.cf sendmail.fc sendmail.hf sendmail.st uucp vfont )
${FILES} -> ${HOSTS}
install -oremove,chknfs ;
except /usr/lib/${EXLIB} ;
except /usr/games/lib ;
special /usr/lib/sendmail "/usr/lib/sendmail -bz" ;
srcs:
/usr/src/bin -> arpa
except_pat ( \\.o\$ /SCCS\$ ) ;
IMAGEN = (ips dviimp catdvi)
imagen:
/usr/local/${IMAGEN} -> arpa
install /usr/local/lib ;
notify ralph ;
${FILES} :: stamp.cory
notify root@cory ;
PPPPaaaaggggeeee 9999
RRRRDDDDIIIISSSSTTTT((((1111)))) RRRRDDDDIIIISSSSTTTT((((1111))))
EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
TMPDIR
Name of temporary directory to use. Default is ////ttttmmmmpppp....
FFFFIIIILLLLEEEESSSS
distfile - input command file
$TMPDIR/rdist* - temporary file for update lists
SSSSEEEEEEEE AAAALLLLSSSSOOOO
sssshhhh((((1111)))),,,, ccccsssshhhh((((1111)))),,,, oooorrrrddddiiiisssstttt((((1111)))),,,, ssssttttaaaatttt((((2222)))),,,, rrrrsssshhhh((((1111cccc)))),,,, rrrrccccmmmmdddd((((3333))))
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
NNNNOOOOTTTTEEEESSSS
If the basename of a file (the last component in the pathname) is ".",
then rrrrddddiiiisssstttt assumes the remote (destination) name is a directory. i.e.
////ttttmmmmpppp////.... means that ////ttttmmmmpppp should be a directory on the remote host.
The following options are still recognized for backwards compatibility:
-v -N -O -q -b -r -R -s -w -y -h -i -x
Rdist will not work with clients that are running an old (pre-5.3)
version of rdist. The old version ordist(1) is retained for backwards
compatibility. You should use ordist if you are pushing files to old
clients.
BBBBUUUUGGGGSSSS
Source files must reside on the local host where rdist is executed.
Variable expansion only works for name lists; there should be a general
macro facility.
_R_d_i_s_t aborts on files which have a negative mtime (before Jan 1, 1970).
If a hardlinked file is listed more than once in the same target, then
_r_d_i_s_t will report missing links. Only one instance of a link should be
listed in each target.
PPPPaaaaggggeeee 11110000